#ifndef HIDL_GENERATED_ANDROID_HARDWARE_GRAPHICS_ALLOCATOR_V3_0_BNHWALLOCATOR_H
#define HIDL_GENERATED_ANDROID_HARDWARE_GRAPHICS_ALLOCATOR_V3_0_BNHWALLOCATOR_H

#include <android/hardware/graphics/allocator/3.0/IHwAllocator.h>
namespace OHOS {
namespace android {
namespace hardware {
namespace graphics {
namespace allocator {
namespace V3_0 {

struct BnHwAllocator : public ::OHOS::android::hidl::base::V1_0::BnHwBase {
    explicit BnHwAllocator(const ::OHOS::android::sp<IAllocator> &_hidl_impl);
    explicit BnHwAllocator(const ::OHOS::android::sp<IAllocator> &_hidl_impl, const std::string& HidlInstrumentor_package, const std::string& HidlInstrumentor_interface);

    virtual ~BnHwAllocator();

    ::OHOS::android::status_t onTransact(
            uint32_t _hidl_code,
            const ::OHOS::android::hardware::Parcel &_hidl_data,
            ::OHOS::android::hardware::Parcel *_hidl_reply,
            uint32_t _hidl_flags = 0,
            TransactCallback _hidl_cb = nullptr) override;


    /**
     * The pure class is what this class wraps.
     */
    typedef IAllocator Pure;

    /**
     * Type tag for use in template logic that indicates this is a 'native' class.
     */
    typedef ::OHOS::android::hardware::details::bnhw_tag _hidl_tag;

    ::OHOS::android::sp<IAllocator> getImpl() { return _hidl_mImpl; }
    // Methods from ::OHOS::android::hardware::graphics::allocator::V3_0::IAllocator follow.
    static ::OHOS::android::status_t _hidl_dumpDebugInfo(
            ::OHOS::android::hidl::base::V1_0::BnHwBase* _hidl_this,
            const ::OHOS::android::hardware::Parcel &_hidl_data,
            ::OHOS::android::hardware::Parcel *_hidl_reply,
            TransactCallback _hidl_cb);


    static ::OHOS::android::status_t _hidl_allocate(
            ::OHOS::android::hidl::base::V1_0::BnHwBase* _hidl_this,
            const ::OHOS::android::hardware::Parcel &_hidl_data,
            ::OHOS::android::hardware::Parcel *_hidl_reply,
            TransactCallback _hidl_cb);



private:
    // Methods from ::OHOS::android::hardware::graphics::allocator::V3_0::IAllocator follow.

    // Methods from ::OHOS::android::hidl::base::V1_0::IBase follow.
    ::OHOS::android::hardware::Return<void> ping();
    using getDebugInfo_cb = ::OHOS::android::hidl::base::V1_0::IBase::getDebugInfo_cb;
    ::OHOS::android::hardware::Return<void> getDebugInfo(getDebugInfo_cb _hidl_cb);

    ::OHOS::android::sp<IAllocator> _hidl_mImpl;
};

}  // namespace V3_0
}  // namespace allocator
}  // namespace graphics
}  // namespace hardware
}  // namespace android
}  // namespace OHOS
#endif  // HIDL_GENERATED_ANDROID_HARDWARE_GRAPHICS_ALLOCATOR_V3_0_BNHWALLOCATOR_H
